/* --------------------------------------------------- ABM DE USUARIOS ------------------------------------------------------------*/

/* ---------- Datable ---------- */
$(document).ready(function(){
	$('.datatable').dataTable({
		"sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span12'i><'span12 center'p>>",
		"sPaginationType": "bootstrap",
		"oLanguage": {
			"sProcessing":   "Procesando...",
			"sLengthMenu": "_MENU_ registros por p&aacute;gina",
			"sZeroRecords":  "No se encontraron resultados",
			"sInfo":         "Mostrando desde _START_ hasta _END_ de _TOTAL_ registros",
			"sInfoEmpty":    "Mostrando desde 0 hasta 0 de 0 registros",
			"sInfoFiltered": "(filtrado de _MAX_ registros en total)",
			"sInfoPostFix":  "",
			"sSearch":       "Buscar:",
			"sUrl":          "",
			"oPaginate": {
				"sFirst":    "Primero",
				"sPrevious": "Anterior",
				"sNext":     "Siguiente",
				"sLast":     "&Uacute;ltimo"
			}
		}
	});
});

//Este metodo se llama para modificar los datos del usuario logeado.
function modificarMiUsuario(url){
	var email = document.getElementById("email");	
	var passwordActual = document.getElementById("passwordActual");
	var passwordNuevo = document.getElementById("passwordNuevo");
	var repetirPassword = document.getElementById("repetirPassword");
		
	if(email.value!=""){
		if(passwordActual.value=="" && passwordNuevo.value=="" && repetirPassword.value==""){
			//Enviamos el formulario al servidor para que se procese la transaccion
			var formulario = document.getElementById("formUsuario");
			formulario.submit();
			
			//Si habia algun campo marcado como incompleto lo ponemos a la normalidad
			$("#campoEmail").removeClass("error");
			
			//Le damos el foco al primer campo a completar
			$("#email").focus();
		}else{
			if(passwordActual.value.length>=6 && passwordNuevo.value.length>=6 && repetirPassword.value.length>=6){
				if(passwordNuevo.value == repetirPassword.value){
							
					//Enviamos el formulario al servidor para que se procese la transaccion
					var formulario = document.getElementById("formUsuario");
					formulario.submit();
					
					//Si habia algun campo marcado como incompleto lo ponemos a la normalidad
					$("#campoEmail").removeClass("error");
					$("#campoPasswordNuevo").removeClass("error");
					$("#campoRepetirPassword").removeClass("error");
					
					//Le damos el foco al primer campo a completar
					$("#email").focus();		
				}else{
					alert("Disculpe, la contrase\u00f1a y su confirmaci\u00f3n deben ser iguales.");

					if(passwordNuevo.value != repetirPassword.value) $("#campoPasswordNuevo").addClass("error"); else $("#campoPasswordNuevo").removeClass("error");
					if(passwordNuevo.value != repetirPassword.value) $("#campoRepetirPassword").addClass("error"); else $("#campoRepetirPassword").removeClass("error");
				}
			}else{
				alert("Disculpe, tanto la contrase\u00f1a actual, como la nueva y su confirmaci\u00f3n deben contener al menos 6 caracteres.");			
			
				//Marcamos todos los campos imcompletos para que sea mas facil de visualizar.
				if(passwordActual.value.length<6) $("#campoPasswordActual").addClass("error"); else $("#campoPasswordActual").removeClass("error");
				if(passwordNuevo.value.length<6) $("#campoPasswordNuevo").addClass("error"); else $("#campoPasswordNuevo").removeClass("error");
				if(repetirPassword.value.length<6) $("#campoRepetirPassword").addClass("error"); else $("#campoRepetirPassword").removeClass("error");
			}		
		}
	}else{
		alert("Por favor, ingrese todos los campos obligatorios.");
		
		//Marcamos todos los campos imcompletos para que sea mas facil de visualizar.
		if(email.value == "") $("#campoEmail").addClass("error"); else $("#campoEmail").removeClass("error");
	}
}

/*Este metodo se llama cuando en el metodo consultar usuarios se aprieta el boton eliminar usuario de cada registro*/
function eliminarUsuario(url, nombre){
	var resp = confirm("Realmente desea eliminar al usuario: '"+nombre+"'?");
	if(resp == true){
		$("#content").load(url, function(){});
	}
}

var nombreUsuarioDisponible = false;

//Este metodo se llama para que cuando se ingresa un nombre de usuario se compruebe si esta disponible o no
function comprobarDisponibilidadUsuario(url){
	var nombre = document.getElementById("nombre");
			
	if(nombre.value.length > 1){
		$.post(url+"/"+nombre.value+".html", { },
			function(data){
				//alert(data);
				
				nombreUsuarioDisponible = data;
				
				if(nombreUsuarioDisponible == "true"){					
					$("#campoNombre").removeClass("error");
					$("#campoNombre").addClass("success");
				} else {
					$("#campoNombre").removeClass("success");
					$("#campoNombre").addClass("error");			
				}
		});
	}
}

//Este metodo se llama cuando se tiene que crear un usuario nuevo
function crearUsuario(){
	var nombre = document.getElementById("nombre");
	var email = document.getElementById("email");
	var tipoUsuario = document.getElementById("tipoUsuario");
	var cliente = document.getElementById("cliente");
	var password = document.getElementById("password");
	var repetirPassword = document.getElementById("repetirPassword");
	var estado = document.getElementById("estado");
		
	if(nombreUsuarioDisponible == "true" && nombre.value!="" &&  email.value!="" && ((tipoUsuario.value=="1") || (tipoUsuario.value=="2" && cliente.value!="0")) && password.value.length>=6 && password.value==repetirPassword.value){
		//Enviamos el formulario al servidor para que se procese la transaccion
		var formulario = document.getElementById("formUsuario");
		formulario.submit();
		
		//Inicializamos todos campos a vacios.		
		nombre.value = "";
		email.value = "";		
		tipoUsuario.value = "2";
		cliente.value = "0";		
		password.value = "";
		repetirPassword.value = "";
		estado.value = "1";
		
		//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
		$("#campoNombre").removeClass("error");
		$("#campoEmail").removeClass("error");
		$("#campoCliente").removeClass("error");
		$("#campoPassword").removeClass("error");
		$("#campoRepetirPassword").removeClass("error");
		
		//Le damos el foco al primer campo a completar
		$("#nombre").focus();
	}else{
		alert("Por favor, ingrese todos los datos del usuario que desea crear.");
		
		//Marcamos todos los campos imcompletos para que sea mas facil de visualizar.		
		if(nombre.value == "") $("#campoNombre").addClass("error"); else $("#campoNombre").removeClass("error");	
		if(email.value == "") $("#campoEmail").addClass("error"); else $("#campoEmail").removeClass("error");
		if(tipoUsuario.value=="2" && cliente.value=="0") $("#campoCliente").addClass("error"); else $("#campoCliente").removeClass("error");
		
		if(password.value.length < 6){
			$("#campoPassword").addClass("error");			
		} else {
			$("#campoPassword").removeClass("error");			
		}
		
		if(password.value != repetirPassword.value || repetirPassword.value.length < 6) $("#campoRepetirPassword").addClass("error"); else $("#campoRepetirPassword").removeClass("error");
	}
}

//Este metodo se llama cuando se tiene que modificar un usuario
function modificarUsuario(){
	var nombre = document.getElementById("nombre");
	var email = document.getElementById("email");
	var tipoUsuario = document.getElementById("tipoUsuario");
	var cliente = document.getElementById("cliente");
	var password = document.getElementById("password");
	var repetirPassword = document.getElementById("repetirPassword");
	var estado = document.getElementById("estado");
		
	if(nombre.value!="" &&  email.value!="" && ((tipoUsuario.value=="1") || (tipoUsuario.value=="2" && cliente.value!="0")) && ((passwordActual.value == "" && passwordNuevo.value == "" && repetirPassword.value == "") || (passwordActual.value.length>=6 && passwordNuevo.value.length>=6 && passwordNuevo.value==repetirPassword.value))){
		//Enviamos el formulario al servidor para que se procese la transaccion
		var formulario = document.getElementById("formUsuario");
		formulario.submit();
		
		//Inicializamos los campos de password a vacios		
		passwordActual.value = "";
		passwordNuevo.value = "";
		repetirPassword.value = "";
		
		//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
		$("#campoNombre").removeClass("error");
		$("#campoEmail").removeClass("error");
		$("#campoCliente").removeClass("error");
		$("#campoPasswordActual").removeClass("error");
		$("#campoPasswordNuevo").removeClass("error");
		$("#campoRepetirPassword").removeClass("error");
		
		//Le damos el foco al primer campo a completar
		$("#nombre").focus();
	}else{
		alert("Por favor, ingrese todos los datos del usuario que desea modificar.");
		
		//Marcamos todos los campos imcompletos para que sea mas facil de visualizar.		
		if(nombre.value == "") $("#campoNombre").addClass("error"); else $("#campoNombre").removeClass("error");	
		if(email.value == "") $("#campoEmail").addClass("error"); else $("#campoEmail").removeClass("error");
		if(tipoUsuario.value=="2" && cliente.value=="0") $("#campoCliente").addClass("error"); else $("#campoCliente").removeClass("error");
		
		if(passwordActual.value.length >= 1 && passwordActual.value.length < 6){
			$("#campoPasswordActual").addClass("error");
		} else {
			$("#campoPasswordActual").removeClass("error");
		}
		
		if(passwordActual.value != "" && passwordNuevo.value.length < 6) $("#campoPasswordNuevo").addClass("error"); else $("#campoPasswordNuevo").removeClass("error");
		if(passwordActual.value != "" && (repetirPassword.value != passwordNuevo.value || repetirPassword.value.length < 6)) $("#campoRepetirPassword").addClass("error"); else $("#campoRepetirPassword").removeClass("error");		
	}
}